This invention relates generally to cryptographic processing in communication networks and, more particularly, to a cryptographic device located between a user or "client" interface, which is usually a network of relatively local computers and other devices, and a communication network through which messages are to be transmitted from the client interface to selected destinations. Since many other systems and clients have legitimate access to the communication network, the security of these transmissions is often a significant issue. Various communication security protocols have been developed, for operation at different network protocol layers. The precise nature of these security protocols is not important to the present invention, which may be adapted to handle any desired security protocol.
The principal types of security service with which the invention is concerned involve encryption for confidentiality and encryption for integrity. Confidentiality is the protection of transmitted information from disclosure to unauthorized individuals or entities. For this purpose the information is transformed into an encrypted form before transmission, and is decrypted back to its "clear text" form upon receipt at the destination. Integrity involves the detection of whether received data has been modified during transmission. For this purpose, the information need not be encrypted, but merely subject to processing that results in the generation of a unique cryptographic checksum at each end of the transmission path. If the checksums do not match, the underlying data is assumed to have been modified.
Ideally, cryptographic processing should be "transparent" to the user or client. Sending and receiving messages could then take place without regard to the nature, or even the existence, of cryptographic processing, the use of which should not significantly increase the transmission time delay, referred to as "latency," or have any significant effect on the "throughput" or rate of flow of data between the client and a network. However, completely transparent cryptographic processing is both complex and costly, and there is a need for a less costly nontransparent cryptographic processing technique, in which each participating device connected to a client interface assumes responsibility for some aspects of cryptographic processing.
An important goal in designing cryptographic systems for network use is that the cryptographic processing should be located between the client interface and the communication network, in such a manner that processing can be performed "on the fly" without significant delay, as data packets pass in either direction. In some configurations, cryptographic processing may be integrated with a client interface controller, but cryptographic processing is still being performed in the communication path. Because data has to be processed in both directions through the cryptographic device, most prior implementations of such a device employ two independent cryptographic engines, to handle the eventuality of data flow in both directions simultaneously. The use of a single cryptographic engine is commonly believed to affect performance adversely, by the injection of processing delays in one direction or the other.
Accordingly, there is still a need for improvement in the field of cryptographic processing for network communication, and in particular there is a need for a low-cost device, i.e. one needing only a single cryptographic engine, that does not suffer from the performance degradation of its predecessors. The present invention satisfies this need.